# 批量更新版权信息脚本
# 本脚本用于将源码中的所有版权信息改成年份+慕念科技，年份自动检测

# 获取当前年份
$currentYear = (Get-Date).Year

# 定义需要修改的文件列表
$filesToUpdate = @(
    'd:\订单自主查询系统\config.php',
    'd:\订单自主查询系统\install.php',
    'd:\订单自主查询系统\install\db_init.sql',
    'd:\订单自主查询系统\README.md',
    'd:\订单自主查询系统\includes\update_admin_table.php',
    'd:\订单自主查询系统\README_FIX.md',
    'd:\订单自主查询系统\public\index.php',
    'd:\订单自主查询系统\install\show_admin_info.php',
    'd:\订单自主查询系统\functions.php',
    'd:\订单自主查询系统\admin\admin_login.php',
    'd:\订单自主查询系统\admin\admin.php'
)

# 定义版权信息的替换模式
$replacementPatterns = @(
    @{ Pattern = '(//\s*版权所有\s*©\s*)\d{4}(\s*慕念科技\.\s*保留所有权利\.)'; Replacement = "`$1$currentYear`$2" },
    @{ Pattern = '(\-\-\s*版权所有\s*©\s*)\d{4}(\s*慕念科技\.\s*保留所有权利\.)'; Replacement = "`$1$currentYear`$2" },
    @{ Pattern = '(©\s*)\d{4}(\s*慕念科技\s*版权所有)'; Replacement = "`$1$currentYear`$2" },
    @{ Pattern = '(©\s*)\d{4}(\s*订单自主查询系统\s*\|\s*慕念科技)'; Replacement = "`$1$currentYear`$2" },
    @{ Pattern = '(©\s*)\d{4}(\s*订单自主查询系统)'; Replacement = "`$1$currentYear`$2" },
    @{ Pattern = '(©\s*)\d{4}(\s*订单自主查询系统\s*-\s*让快递查询更简单！)'; Replacement = "`$1$currentYear`$2" },
    @{ Pattern = '(订单自主查询系统\s*©\s*)\d{4}(\s*版权所有)'; Replacement = "`$1$currentYear`$2" }
)

# 遍历文件列表，逐个更新
$updatedFiles = 0
foreach ($filePath in $filesToUpdate) {
    if (Test-Path $filePath) {
        # 读取文件内容
        $content = Get-Content $filePath -Raw
        $originalContent = $content
        
        # 应用所有的替换模式
        foreach ($pattern in $replacementPatterns) {
            $content = $content -replace $pattern.Pattern, $pattern.Replacement
        }
        
        # 如果内容有变化，写回文件
        if ($content -ne $originalContent) {
            Set-Content $filePath -Value $content
            $updatedFiles++
            Write-Host "已更新: $filePath"
        }
    } else {
        Write-Host "文件不存在: $filePath"
    }
}

# 输出更新结果
Write-Host "\n版权信息更新完成！"
Write-Host "总共更新了 $updatedFiles 个文件的版权年份为 $currentYear。"
Write-Host "\n提示：为了确保所有版权信息都已更新，建议手动检查一下系统中的其他文件。"
Write-Host "\n按任意键退出..."

# 等待用户按键退出
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')